package com.touchstone.cloudpacs.mapper;

import com.touchstone.cloudpacs.entity.User;
import com.touchstone.cloudpacs.request.query.UserPageQuery;
import com.touchstone.cloudpacs.vo.UserPageVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description : 用户数据操作层
 * @Author : hunter
 * @Date: 2019-07-11 22:59
 * @Version: 1.0
 **/
public interface UserMapper {

    /**
     * 功能描述: 新增用户
     *
     * @param user 用户信息
     * @return:
     * @throws：
     * @createUserName: hunter
     * @createTime: 2019/7/11 23:30
     */
    int insert(@Param("user") User user);

    /**
     * 修改用户
     *
     * @param user 用户信息
     * @return
     * @author hunter
     * @date 2019/7/12 0012 14:35
     **/
    int update(@Param("user") User user);

    /**
     * 根据用户ID查找用户
     *
     * @param id 用户ID
     * @return user
     * @author hunter
     * @date 2019/7/12 0012 14:06
     **/
    User selectById(@Param("id") String id);

    /**
     * 更改用户状态
     *
     * @param user 更改的用户信息
     * @return 影响结果行数
     * @author hunter
     * @date 2019/7/12 0012 14:10
     **/
    int updateStatus(@Param("user") User user);

    /**
     * 根据条件查询用户
     *
     * @param query 查询条件封装实体
     * @return List<UserPageVO> 用户信息列表
     * @author hunter
     * @date 2019/7/12 0012 14:15
     **/
    List<UserPageVO> selectByQuery(@Param("query") UserPageQuery query);

    /**
     * 根据用户名统计用户数量
     *
     * @param userName 用户名
     * @return
     * @author hunter
     * @date 2019/7/12 0012 15:04
     **/
    User selectByUserName(@Param("userName") String userName);
}
